Technical Field
The present invention relates to methods and systems for vehicle steering control that allows a vehicle to automatically perform various maneuvers including lane keeping, lane changes, left and right turns, as well as obstacle avoidance.
Related Art
In recent years, technologies that free drivers from tedious driving tasks and allow vehicles to operate automatically are being developed. One critical technology is the vehicle steering control that allows a vehicle to automatically perform various maneuvers in order to go from a source location to a destination. The typical maneuvers include lane keeping (in which the vehicle follows a lane and maintains its position in the lane), lane changes (in which the vehicle changes from one lane to another in order to maintain a desired speed, or to merge into or exit a freeway, or to prepare for left or right turns), left and right turns, as well as obstacle avoidance (in which the vehicle steers away from an obstacle in the lane to avoid hitting the obstacle).
To accomplish these various maneuvers, a typical vehicle control systems involves at least two levels or parts: path planning and path following. In path planning, the vehicle control system first plans or generates a desired path, by following which the vehicle can execute the maneuver. Typically for the lane keeping maneuver, the lane the vehicle is following naturally becomes the desired path. In all other maneuvers, the desired path needs to be generated according to the specific maneuver. For example, a desired path for a lane change is significant different from a desired path for a left turn or a right turn. In other words, different patterns or formulas are used to generate the desired paths for different maneuvers. Furthermore, the desired path also depends on factors such as the vehicle speed; for example, the higher the speed, the longer the desired path for a lane change. The desired path is typically constructed as one or multiple segments of smooth curves, which are represented mathematically using splines, polynomials, etc. During the execution of the maneuvers, the vehicle control system uses the desired path as references for the steering control. Therefore, the system needs to either store the desired path generated before the maneuver or continuously generate a new desired path during the maneuver execution.
In path following, the system determines the steering control command based on the desired path and the vehicle states and turns the steered wheels accordingly so that the vehicle can follow the desired path. The approaches in determining the steering control command can be divided into two categories. The approaches that fall into the first category typically involve (1) estimating or obtaining the curvature of the desired path, the current lateral deviation of the vehicle from the desired path, and the relative heading angle between the vehicle heading and the tangent direction of the desired path, and (2) computing the steering control command as a combination of a feed-forward term based on the curvature and a feedback term based on the current lateral deviation and the relative heading angle. The approaches that fall into the second category typically involve (1) predicting a path the vehicle will likely travel along based on vehicle states, (2) determining an error between the predicted path and the desired path at a distance ahead, and (3) computing the steering control command as a linear function of the error or an integration of the error.
The existing prior-art vehicle steering control systems have several limitations. First, the necessity to plan or generate a desired path as a reference for steering control increases system complexity and computation load. As the desired paths differ for different maneuvers, the system needs to store all the different patterns of the desired paths for all the different maneuvers and to retrieve the appropriate pattern based on the maneuver to be executed. The system also needs to generate the actual desired path using the retrieved pattern based on the vehicle speed, road geometry, and other factors. For example, the different patterns can be represented by different sets of equations, where each set of equations corresponds to a specific type of maneuvers. The system retrieves the appropriate set of equations based on the maneuver to be performed and further determines the parameters of the retrieved set of equations based on factors such as the vehicle speed and road geometry. The retrieved set of equations with the determined parameters then defines the desired path for the maneuver. Moreover, if the system is designed to continuously update the desired path during the maneuver, the computation level increases; if the system is designed to store the desired path, the system needs to allocate memory for the storage and to locate the vehicle current position to the corresponding location in the desired path. In short, the need to generate a desired path increases the system complexity as well as computation and storage demands.
Second, each category of the approaches of path following has its limitations. In the first category where the steering control command includes a feed-forward term and a feedback term, the curvature needs to be estimated or pre-stored in a digital map (which may result in a large demand on storage or communication unless the vehicle operates only on limited, pre-determined routes). In environments where the curvature is fast changing, one further question is which curvature (i.e., curvature at vehicle current location or ahead of vehicle) should be estimated and used. The decision also needs to take into consideration of vehicle speed. Moreover, since the steering control command is a combination of a feed-forward term and a feedback term, the determination of the weights on both terms so as to optimize the performance becomes another issue, and the weights likely need to be changed when vehicle states and operating environment change.
The approaches in the second category have the advantage of being relatively straightforward: they do not need to estimate curvature or determine weights. Although they need to predict a path the vehicle is likely to travel along, two simple predictions are typically used: the primary prediction and the secondary prediction. Using the primary prediction, the predicted path is simply a straight line in the direction of vehicle heading angle. In other words, the primary prediction assumes the vehicle will maintain its current heading angle in the predicted time frame. The steering angle command δ is then given by multiplying an error e, which is the distance between the predicted path and the desired path at a predetermined forward distance, by a predetermined proportional constant gain k: δ=k·e. Using the second prediction, the path prediction is based on the vehicle's current direction and running conditions. The error e between the predicted path and the desired path at a predetermined forward distance is then integrated and the resultant value is multiplied by the proportional constant gain k to derive the steering angle command: δ=k·(Σe).
Although the approaches in the second category are relatively simple, they suffer from serious performance issues. The control using the primary prediction can achieve satisfactory performance when the desired path is nearly straight; however, its performance is far from satisfaction when the vehicle negotiates sharp curves. Under the control based on the secondary prediction, the vehicle could follow a desired path with satisfactory accuracy under some conditions, e.g., at low or moderate speeds and on relatively mild curves. However, with a predetermined (i.e., constant) forward distance and a predetermined (i.e., constant) gain, the control would become unstable at high speeds and the vehicle would be out of the path when negotiating very tight curves.
To overcome the above limitations, some prior art methods employ multiple controllers and switch the control among them. In one prior art, three controllers were designed, the first one is a linear function of the error using the primary prediction, the second and third ones are the integration of the error using the secondary prediction. The difference between the second and third controllers is that the second one uses a pre-determined (i.e., constant) smaller forward distance (i.e., a near distance) while the third one uses a pre-determined (i.e., constant) larger forward distance (i.e., a far distance). When the vehicle is traveling on a straight road, the first controller is used, when the vehicle is negotiating a very tight curve, the second controller is used, otherwise, the third one is used. However, as this method requires switching among different controllers, the smoothness of the control during switching is sacrificed. If additional mechanisms are implemented to improve the smoothness during controller switching, the system complexity increases. Moreover, this method also needs to ensure the switching decision making can make the correct selection of controllers under all conditions.
It is therefore desirable to have steering control methods and systems that can overcome the limitations in both the path planning and path following of the prior-art steering control methods and systems. The present invention provides such steering control methods and systems.